package br.com.esporte.view.site.component.listaAtualizacao;

import java.util.List;

import org.apache.wicket.Component;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;

import br.com.esporte.model.atualizacao.Atualizacao;
import br.com.esporte.view.site.component.listaAtualizacao.item.ItemAtualizacao;
import br.com.esporte.view.site.component.tipoEsporte.TipoEsporteAbstract;

/**
 * 
 * @author Milton Domingues
 *
 */
public class ListAtualizacaoComponent extends TipoEsporteAbstract {

	private static final long serialVersionUID = -1282442909886846101L;

	private static final String FORM_ID = "form";
	private static final String ATUALIZACOES_ID = "atualizacoes";
	private static final String ATUALIZACAO_ITEM_ID = "itemAtualizacao";

	private List<Atualizacao> lista;
	private ListView<Atualizacao> listView;

	public ListAtualizacaoComponent(String id, List<Atualizacao> lista) {
		super(id);
		setOutputMarkupId(true);
		setLista(lista);
		montarComponente();
	}

	private ListView<Atualizacao> criarListaAtualizacoes(List<Atualizacao> lista){
		listView = new ListView<Atualizacao>(ATUALIZACOES_ID, lista) {
			private static final long serialVersionUID = -6321295150692860006L;

			@Override
			@SuppressWarnings("rawtypes")
			protected void populateItem(ListItem<Atualizacao> item) {
				Atualizacao atualizacao = item.getModelObject();
				ItemAtualizacao itemAtu = AtualizacaoItemFactory.getnstance().createItem(ATUALIZACAO_ITEM_ID, atualizacao);
				item.add(itemAtu);
			}
		};
		return listView;
	}

	public List<Atualizacao> getLista() {
		return lista;
	}

	public ListView<Atualizacao> getListView() {
		return listView;
	}

	@Override
	public void montarComponente() {
		Form<Component> form = new Form<Component>(FORM_ID);
		form.add(criarListaAtualizacoes(getLista()));
		add(form);
	}

	public void setLista(List<Atualizacao> lista) {
		this.lista = lista;
	}

	public void setListView(ListView<Atualizacao> listView) {
		this.listView = listView;
	}

}
